-
Notifications
You must be signed in to change notification settings - Fork 0
feat(smartem-workspace): config refactor, dev requirements, claude opt-in #113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Add --scope prereqs to check command - Check git, Python 3.11+, uv, network connectivity - Auto-run prereqs at start of init (--skip-prereqs to bypass) - Prerequisites shown first in full check output
Defines tool prerequisites for smartem-workspace check command: - git, Python 3.11+, uv (recommended) - Node.js 22+, npm - Container runtime (docker or podman) - kubectl, k3s, gh CLI Structure to be refined as part of config sync discussion.
|
The CLI tool should offer the option to omit AI-related setup for users that do not use Claude Code or want to bring a different vendor AI. By default Claude Code AI setup should be disabled so that users have to explicitly enable it should they want it. Extract from repos.json into claude-code-config.json because they may be other AIs and they might be configured differently. Also follow the pattern of json for content + ts for types and re-export as we do with repos |
Naming improvement: prerequisites to what? These are developer requirements for setting up a local machine for development. Please suggest what canonical naming would work best here and let's use that |
|
Additionally, naming mismatch between |
My current understanding is that we bundle latest JSON definitions with smartem-workspace tool as we publish to PyPI and that acts as a local fallback, but primary source of truth when smartem-workspace is invoked is a lookup in head of main branch on github - please confirm that is current behaviour and is uniform across all aspects of setup and all setup definitions? |
|
I question the merit of duplicating definition schemas: we have core/.ts that defines types and acts as schema enforcer for JSON content already - what does |
Discussion SummaryComment 1: Workflow naming + testsResolution: Workflow rename only. Current tests (schema validation, preset resolution, path utilities) are useful for catching schema breakages. Test expansion is a separate concern. Renaming to: Comment 2: AI config extractionResolution:
Comment 3: Prerequisites namingResolution: Renamed to Comment 4: repos-and-refs namingResolution: Out of scope - comment added to PR #106 for tracking. Comment 5: Config loading behaviorResolution:
Comment 6: Schema duplicationResolution: Deferred - created issue #114 to investigate DRY approaches later. |
|
Clarification added: Init without
Init with
|
… Claude opt-in - Extract AI config (claudeConfig, serenaConfig, mcpConfig) from repos.json to new claude-code-config.json - Rename prerequisites.json to dev-requirements.json with TypeScript types - Make Claude Code setup opt-in with --with-claude flag (disabled by default) - Add standalone `smartem-workspace claude setup` command - Add --no-color and --plain global CLI flags for scripting - Remove .gitignore creation from workspace init (workspace not versioned) - Remove unused local_path parameter from config loader - Dynamic tool checking from dev-requirements.json with version comparison - Rename GitHub workflow to "smartem-workspace CLI tool PyPI package"
…cloning - Auto-detect SSH authentication for GitHub repos (test via ssh -T [email protected]) - If SSH works, clone via SSH URLs (enables push); otherwise use HTTPS - Replace --ssh flag with --git-ssh (force SSH) and --git-https (force HTTPS) - Cache SSH check results to avoid repeated connection attempts - Notify user about clone method being used - GitLab repos continue to use HTTPS by default (read-only reference)
Summary
repos.json- extract AI config toclaude-code-config.jsondev-requirements.json/dev-requirements.tsdev-requirements.jsontocheck.pyfor dynamic tool checking.gitignorecreation from workspace init--no-colorand--plainflags for scriptinglocal_pathparam from config loaderFiles to Modify/Create
core/
repos.jsonclaude-code-config.jsonclaude-code-config.tsdev-requirements.jsondev-requirements.tspackages/smartem-workspace/
config/schema.pyconfig/loader.pycommands/check.pycommands/claude.pysmartem-workspace claude setupcommandsetup/workspace.pycli.py.github/workflows/
publish-smartem-workspace.ymlUsage
Verification
cd webui && npm run typecheck && npm run lintcd packages/smartem-workspace && uv run pytest -v--with-claudecreates Claude Code integration--plainoutputs no ANSI codesOut of Scope